#include "locksmatrix.h"
#include <assert.h>

/*
 * Inicjacja macierzy blokad
 */
int LocksMatrix::matrix_[5][5] =  {{1,1,1,1,0},
                                   {1,1,0,0,0},
                                   {1,0,1,0,0},
                                   {1,0,0,0,0},
                                   {0,0,0,0,0}};

/*
 * Konstruktor
 */
LocksMatrix::LocksMatrix(){
}

/*
 * Sprawdza czy dwie blokady mogą współistnieć na jednym zasobie
 */
bool LocksMatrix::canLock(const LockType currentLock, const LockType requestedLock) const{
    assert(currentLock >=0 && currentLock <= 4);
    assert(requestedLock >=0 && requestedLock <= 4);
    return matrix_[currentLock][requestedLock];
}
